; Coded by JackAsser/Instinct

.segment "SETUP"

;.define COLOR1 0
;.define COLOR2 6
;.define COLOR3 14
;.define COLOR4 3

;.define COLOR1 0
;.define COLOR2 9
;.define COLOR3 8
;.define COLOR4 10

;.define COLOR1 0
;.define COLOR2 6
;.define COLOR3 4
;.define COLOR4 10

.define COLOR1 0
.define COLOR2 6
.define COLOR3 14
.define COLOR4 4

.define START $19
.define ROT $05
.define FRAMElo $06
.define FRAMEhi $07
.define SCROLLPOS $08
.define BEATfine $09
.define BEATcoarse $0a

scroll=$0300

.proc main
				sei
				lda #$35
				sta $01
				
				bit $d011
				bpl *-3
				bit $d011
				bmi *-3
				lda #$00
				sta $d020
				sta $d021
				sta $d011
		
				lda #$00
				sta BEATfine
				lda #$02
				sta BEATcoarse
				
				lda #$00
				tax
				tay
				jsr music
.if 0
				loop:
					lda #$80
					cmp $d012
					bne *-3
					inc $d020
					jsr music+3
					dec $d020
					ldx #$00
					:
						lda music+$300+200+129,x
						sta $0400,x
						inx
					bne :-

					ldx #$00
					lda music+$300+201+129
					and #$0f
					bne :+
						ldx #$01
					:					
					stx $d020

					ldx #$00
					lda music+$300+208+129
					bne :+
						ldx #$01
					:
					stx $d021

				jmp loop
.endif				
					
												
				ldx #$00
				:
					lda char_a,x
					eor #$00
					sta char_a,x
					lda #$00
					sta scroll,x
					inx
				bne :-
				
				lda #$00
				sta $d015
				sta $d01a
				lda #$7f
				sta $dc0d
				bit $dc0d
				sta $dd0d
				bit $dd0d

				lda #$00
				sta FRAMElo
				sta FRAMEhi
				sta SCROLLPOS
				sta $b9ff

				lda #$00
				sta ROT

				bit $d011
				bpl *-3
				bit $d011
				bmi *-3

				ldx $d012
				inx
				cpx $d012
				bne *-3
				ldy #$0a
				dey
				bne *-1
				inx
				cpx $d012
				nop
				beq *+5
				nop
				bit $24
				ldy #$09
				dey
				bne *-1
				nop
				nop
				inx
				cpx $d012
				nop
				beq *+4
				bit $24
				ldy #$0a
				dey
				bne *-1
				inx
				cpx $d012
				bne *+2
				nop
				nop
				nop
				nop
				nop
				nop
				nop
				nop
				lda #$3e
				sta $dc04
				sty $dc05
				lda #%00010001
				sta $dc0e

				lda #$01
				sta $dd00

				lda #COLOR1
				sta $d020
				sta $d021
				lda #COLOR3
				ldx #$07
				:
					sta $d027,x
					dex
				bpl :-
				lda #COLOR2
				sta $d025
				lda #COLOR4
				sta $d026

				lda #$ff
				sta $d015
				sta $d017
				sta $d01c
				sta $d01d
				ldx #$0e
				lda #START-3
				:
					sta $d001,x
					dex
					dex
				bpl :-
				lda #$f0
				sta $d000
				lda #<(40+48*0)
				sta $d002
				lda #<(40+48*1)
				sta $d004
				lda #<(40+48*2)
				sta $d006
				lda #<(40+48*3)
				sta $d008
				lda #<(40+48*4)
				sta $d00a
				lda #<(40+48*5)
				sta $d00c
				lda #<(40+48*6)
				sta $d00e
				lda #%11000001
				sta $d010
				
				lda #$ff
				sta $d016

				; Make sure the sprites are enabled here!
				bit $d011
				bpl *-3
				bit $d011
				bmi *-3
				bit $d011
				bpl *-3
				bit $d011
				bmi *-3
				
				lda #$1b
				sta $d011
				lda #$11
				sta $d018
			

				lda #249
				sta $d012
				lda #<initirq
				sta $fffe
				lda #>initirq
				sta $ffff

				
				lda #$01
				sta $d01a

				dec $d019
				cli
jmp *
				:
					nop
					lda $10
					sta $c100
					ldx #$ff
					sta $c100,x
					sta $c1f0,x
					inc $c100
					inc $c1f0,x
				jmp :-
.endproc

.proc initirq
				pha
				lda #$13
				sta $d011
				lda #$05
				cmp $d012
				bne *-3
				lda #$0b
				sta $d011
				lda #START
				sta $d012
				lda #<irq_odd
				sta $fffe
				lda #>irq_odd
				sta $ffff
				pla
				dec $d019
				rti
.endproc

.proc getrnd
			lda tmpseeds,y
			beq doEor
			asl
			beq noEor
			bcc noEor
doEor:	eor seeds,y
noEor:	sta tmpseeds,y
			tax
			rts
seeds:	.byte $1d,$2b,$2d,$4d
tmpseeds:.byte $1d,$2b,$2d,$4d
.endproc

speeds:
				.byte <(1*16+1),<(1*16-1),<(-1*16+1),<(-1*16-1),1,-1,16,-16

.proc genTexel
				;00000011
source:		lda texture,x
				sta texture3_1+$00,x
				sta texture3_1+$80,x
				asl
				asl
				;00001100
				sta texture2_1+$00,x
				sta texture2_1+$80,x
				asl
				asl
				;00110000
				sta texture1_1+$00,x
				sta texture1_1+$80,x
				asl
				asl
				;11000000
				sta texture0_1+$00,x
				sta texture0_1+$80,x

				;11110000
				ora texture1_1+$00,x
				sta texture0_2+$00,x
				sta texture0_2+$80,x
				lsr
				lsr
				;00111100
				sta texture1_2+$00,x
				sta texture1_2+$80,x
				lsr
				lsr
				;00001111
				sta texture2_2+$00,x
				sta texture2_2+$80,x
				
				;00111111
				ora texture1_1+$00,x
				sta texture1_3+$00,x
				sta texture1_3+$80,x
				asl
				asl
				;11111100
				sta texture0_3+$00,x
				sta texture0_3+$80,x

				;11111111
				ora texture3_1+$00,x
				sta texture0_4+$00,x
				sta texture0_4+$80,x
				rts
.endproc

texture:
.if 0
				.byte 0,1,1,1,1,1,1,1
				.byte 0,0,1,1,1,1,1,1
				.byte 0,0,0,1,1,1,1,1
				.byte 0,2,0,0,1,1,1,1
				.byte 0,2,2,0,0,1,1,1
				.byte 0,2,2,2,0,0,1,1
				.byte 0,2,2,2,2,0,0,1
				.byte 0,2,2,2,2,2,0,0
				.byte 0,0,0,0,0,0,0,0
				.byte 0,0,0,0,0,0,0,0
				.byte 0,3,3,3,3,3,3,3
				.byte 0,3,3,3,3,3,3,3
				.byte 0,3,3,3,3,3,3,3
				.byte 0,3,3,3,3,3,3,3
				.byte 0,0,0,0,0,0,0,0
				.byte 0,0,0,0,0,0,0,0
.endif

.if 0
				.byte 1,2,3,2,1,0,0,0
				.byte 0,1,2,3,2,1,0,0
				.byte 0,0,1,2,3,2,1,0
				.byte 0,0,0,1,2,3,2,1
				.byte 0,0,0,1,2,3,2,1
				.byte 0,0,1,2,3,2,1,0
				.byte 0,1,2,3,2,1,0,0
				.byte 1,2,3,2,1,0,0,0
				.byte 0,0,0,0,0,0,0,0
				.byte 0,0,0,0,0,0,0,0
				.byte 1,1,1,1,1,1,1,1
				.byte 2,2,2,2,2,2,2,2
				.byte 3,3,3,3,3,3,3,3
				.byte 2,2,2,2,2,2,2,2
				.byte 1,1,1,1,1,1,1,1
				.byte 0,0,0,0,0,0,0,0
.endif
.if 0
				.byte 1,2,3,2,1,0,0,0
				.byte 1,2,3,2,1,0,0,0
				.byte 0,1,2,3,2,1,0,0
				.byte 0,1,2,3,2,1,0,0
				.byte 0,0,1,2,3,2,1,0
				.byte 0,0,1,2,3,2,1,0 
				.byte 0,0,0,1,2,3,2,1
				.byte 0,0,0,1,2,3,2,1
				.byte 2,3,3,3,2,1,0,1
				.byte 2,3,3,3,2,1,0,1
				.byte 1,2,3,3,3,2,1,0
				.byte 1,2,3,3,3,2,1,0
				.byte 0,1,2,3,3,3,2,1 
				.byte 0,1,2,3,3,3,2,1
				.byte 1,0,1,2,3,3,3,2
				.byte 1,0,1,2,3,3,3,2
.endif

				.byte 0,1,1,0,0,0,0,0
				.byte 1,1,1,1,0,0,0,0
				.byte 1,1,1,1,0,3,3,0
				.byte 1,1,1,1,0,3,3,0
				.byte 1,1,1,1,0,3,3,0
				.byte 1,1,1,1,0,3,3,0 
				.byte 1,1,1,1,0,0,0,0 
				.byte 0,1,1,0,0,0,0,0
				.byte 0,0,0,0,0,2,2,0
				.byte 0,0,0,0,2,2,2,2
				.byte 0,3,3,0,2,2,2,2
				.byte 0,3,3,0,2,2,2,2
				.byte 0,3,3,0,2,2,2,2 
				.byte 0,3,3,0,2,2,2,2
				.byte 0,0,0,0,2,2,2,2
				.byte 0,0,0,0,0,2,2,0

.segment "RASTERCODE"

.proc irq_odd
				sta _AREG+1
				stx _XREG+1
				sty _YREG+1
				sec
				lda #$3f
				sbc $dc04
				sta *+4
				bpl *+2
				lda #$a9
				lda #$a9
				lda #$a9
				lda #$a9
				lda #$a9
				lda #$a9
				lda #$a5
				nop
				pha
				pla
				pha
				pla
				pha
				pla
				pha
				pla
				pha
				pla

screen:		lda #($05|(<((screen0a&$3fff)/$400))<<4)
				inc $d017 ;L14 C53
				sta $d018
				ldy #$ff
				sty $d017
				dec $d019
				pha
				pla
				bit $ff
				ldx ROT
				;Line 11, Cycle 50
code:			jsr rastercode_odd_1

				jsr music+3

				inc FRAMElo
				bne :+
					inc FRAMEhi
				:

				; Switch field or buffer
				lda FRAMElo
				and #$03
				tax
				lda rout_lo,x
				sta code+1
				lda rout_hi,x
				sta code+2
				lda _dd00,x
				sta $dd00
				lda _d018,x
				sta screen+1
				lda empty,x
				sta $d018
				cpx #$00
				bne :+
					ldx SCROLLPOS
					jsr scroller_1
					jmp :++
				:
				cpx #$02
				bne :+
					ldx SCROLLPOS
					jsr scroller_2
				:

			lda BEATcoarse
			cmp #$20
			bcc skipCopy

copyTexel:	ldx #$00
				bmi :+
					jsr genTexel
					inc copyTexel+1
				:
skipCopy:
				
				; Auto music beats
.if 0
				ldx #COLOR4
				lda music+$400+61
				and #$0f
				cmp #$01
				beq :+
					ldx #$01
				:
				stx $d026
				
				ldx #COLOR3
				lda music+$400+18
				and #$0f
				beq :+
					ldx #$01
				:
				txa
				ldx #$07
				:
					sta $d027,x
					dex
				bpl :-
.endif
				ldx #COLOR4
				lda music+$300+201+129
				and #$0f
				bne :+
					ldx #$01
				:					
				stx $d026

				ldx #COLOR3
				lda music+$300+208+129
				bne :+
					ldx #$01
				:
				txa
				ldx #$07
				:
					sta $d027,x
					dex
				bpl :-


				; Pre-coded beats and move
				ldx colpos
				beq :++
					lda coltab,x
					sta $d025
					inx
					cpx #11
					bne :+
						ldx #0
					:
					stx colpos			
				:
				
				ldx BEATfine
				inx
				cpx #24
				bne nobeat
					inc BEATcoarse
								
					; Update direction based on beat
					lda BEATcoarse
					and #$03
					bne :++					
						ldy #$00
						jsr getrnd
						and #$07
						tax
						lda speeds,x
						cmp speed+1
						beq :+
							inc colpos
						:
						sta speed+1
					:				
					ldx #$00
nobeat:		stx BEATfine
				

				; Move forward every 2nd frame
				ldx #$19
				lda FRAMElo
				and #$01
				bne :+
					ldx SCROLLPOS
					inx
					txa
					and #$3f
					sta SCROLLPOS
					
					clc
					lda ROT
speed:			adc #$11
					and #$7f
					sta ROT
					ldx #$1b
				:					
				stx $d012
				dex
				dex
				dex
				txa				
				ldx #$0e
				:
					sta $d001,x
					dex
					dex
				bpl :-
				
				; Scroll every other frame
				lda FRAMElo
				and #$01
				beq noscrolling
					lda #$00
subpos:			ldx #$00
					cpx #5
					bne :+++
scrolltextpos:		ldx scrolltext
						bpl :+
							; RESET
							lda #$37
							sta $01
							jmp ($fffc)
							lda #<scrolltext
							sta scrolltextpos+1
							lda #>scrolltext
							sta scrolltextpos+2
							jmp scrolltextpos
						:
						lda font_offsets,x
						sta charpos+1
						inc scrolltextpos+1
						bne :+
							inc scrolltextpos+2
						:
						lda #$ff
						sta subpos+1
						lda #$00
						jmp :++
					:
charpos:			lda char_spc,x
					:
					ldx SCROLLPOS					
					sta scroll-1,x
					sta scroll+$3f,x
					inc subpos+1
				noscrolling:

.if 0				
				ldx #$1b
				:
					lda $d012
					cmp $d012
					beq *-3
					dex
				bne :-
.endif
				
_AREG:		lda #$00
_XREG:		ldx #$00
_YREG:		ldy #$00
				rti

colpos:		.byte 0
coltab:		.byte $0,$c,$1,$1,$d,$3,$5,$e,$4,$b,$6

rout_lo:		.byte <rastercode_odd_1, <rastercode_even_1, <rastercode_odd_2, <rastercode_even_2
rout_hi:		.byte >rastercode_odd_1, >rastercode_even_1, >rastercode_odd_2, >rastercode_even_2
_dd00:		.byte $01,$01,$00,$00
_d018:		.byte $05|(<((screen0a&$3fff)/$400))<<4
				.byte $05|(<((screen0a&$3fff)/$400))<<4
				.byte $05|(<((screen0b&$3fff)/$400))<<4
				.byte $05|(<((screen0b&$3fff)/$400))<<4
empty:		.byte $05|(<((screen3a&$3fff)/$400))<<4
				.byte $05|(<((screen3a&$3fff)/$400))<<4
				.byte $05|(<((screen3b&$3fff)/$400))<<4
				.byte $05|(<((screen3b&$3fff)/$400))<<4

.endproc

.macro flip
				tay
				lda fliptab,y
				ldy #$ff	
.endmacro

.proc rastercode_odd_1
				.include "rastercode_odd_1.s"
				rts
.endproc

.proc rastercode_even_1
				.include "rastercode_even_1.s"
				rts
.endproc

.proc rastercode_odd_2
				.include "rastercode_odd_2.s"
				rts
.endproc

.proc rastercode_even_2
				.include "rastercode_even_2.s"
				rts
.endproc

.define sop eor
	
.proc scroller_1
				.include "scroller_1.s"
				rts
.endproc

.proc scroller_2
				.include "scroller_2.s"
				rts
.endproc

.align 256
fliptab:
				.repeat 256,I
					.byte ((I&$c0)>>6) | ((I&$30)>>2) | ((I&$0c)<<2) | ((I&$03)<<6)
				.endrep

.segment "SPRITESa"
sprites1:
				.res 64*24,$ff
				.res 64,$00

.segment "SPRITESb"
sprites2:
				.res 64*24,$ff
				.res 64,$00

.segment "TEXTURE1"
texture0_1:	;11000000
				.res 256,$00

.segment "TEXTURE2"
texture1_1:	;00110000
				.res 256,$00

.segment "TEXTURE3"
texture2_1:	;00001100
				.res 256,$00

.segment "TEXTURE4"
texture3_1:	;00000011
				.res 256,$00

.segment "TEXTURE5"
texture0_2:	;11110000
				.res 256,$00

.segment "TEXTURE6"
texture1_2:	;00111100
				.res 256,$00

.segment "TEXTURE7"
texture2_2:	;00001111
				.res 256,$00

.segment "TEXTURE8"
texture0_3: ;11111100
				.res 256,$00

.segment "TEXTURE9"
texture1_3: ;00111111
				.res 256,$00

.segment "TEXTURE10"
texture0_4: ;11111111
				.res 256,$00


sb1=<((__SPRITESa_LOAD__&$3fff)/$40)
sb2=<((__SPRITESb_LOAD__&$3fff)/$40)

.segment "SCREEN0a"
screen0a:
				.byte sb1+0,sb1+1,sb1+2,sb1+3,sb1+4,sb1+5,sb1+6,sb1+7
.segment "SCREEN1a"
screen1a:
				.byte sb1+8,sb1+9,sb1+10,sb1+11,sb1+12,sb1+13,sb1+14,sb1+15
.segment "SCREEN2a"
screen2a:
				.byte sb1+16,sb1+17,sb1+18,sb1+19,sb1+20,sb1+21,sb1+22,sb1+23
.segment "SCREEN3a"
screen3a:
				.byte sb1+24,sb1+24,sb1+24,sb1+24,sb1+24,sb1+24,sb1+24,sb1+24
.segment "SCREEN0b"
screen0b:
				.byte sb2+0,sb2+1,sb2+2,sb2+3,sb2+4,sb2+5,sb2+6,sb2+7
.segment "SCREEN1b"
screen1b:
				.byte sb2+8,sb2+9,sb2+10,sb2+11,sb2+12,sb2+13,sb2+14,sb2+15
.segment "SCREEN2b"
screen2b:
				.byte sb2+16,sb2+17,sb2+18,sb2+19,sb2+20,sb2+21,sb2+22,sb2+23
.segment "SCREEN3b"
screen3b:
				.byte sb2+24,sb2+24,sb2+24,sb2+24,sb2+24,sb2+24,sb2+24,sb2+24


.segment "FONT"
.charmap	'a',0
.charmap	'b',1
.charmap	'c',2
.charmap	'd',3
.charmap	'e',4
.charmap	'f',5
.charmap	'g',6
.charmap	'h',7
.charmap	'i',8
.charmap	'j',9
.charmap	'k',10
.charmap	'l',11
.charmap	'm',12
.charmap	'n',13
.charmap	'o',14
.charmap	'p',15
.charmap	'q',16
.charmap	'r',17
.charmap	's',18
.charmap	't',19
.charmap	'u',20
.charmap	'v',21
.charmap	'w',22
.charmap	'x',23
.charmap	'y',24
.charmap	'z',25
.charmap	'0',26
.charmap	'1',27
.charmap	'2',28
.charmap	'3',29
.charmap	'4',30
.charmap	'5',31
.charmap	'6',32
.charmap	'7',33
.charmap	'8',34
.charmap	'9',35
.charmap	'.',36
.charmap	',',37
.charmap	':',38
.charmap	'/',39
.charmap	'!',40
.charmap	' ',41
.charmap	'§',42

char_a:	.byte %00111100
			.byte %11000011
			.byte %11111111
			.byte %11000011
			.byte %11000011
			
char_b:	.byte %11111100
			.byte %11000011
			.byte %11111100
			.byte %11000011
			.byte %11111100
			
char_c:	.byte %00111111
			.byte %11000000
			.byte %11000000
			.byte %11000000
			.byte %00111111
			
char_d:	.byte %11111100
			.byte %11000011
			.byte %11000011
			.byte %11000011
			.byte %11111100
			
char_e:	.byte %11111111
			.byte %11000000
			.byte %11111100
			.byte %11000000
			.byte %11111111
			
char_f:	.byte %11111111
			.byte %11000000
			.byte %11111100
			.byte %11000000
			.byte %11000000
			
char_g:	.byte %00111111
			.byte %11000000
			.byte %11001111
			.byte %11000011
			.byte %00111111
			
char_h:	.byte %11000011
			.byte %11000011
			.byte %11111111
			.byte %11000011
			.byte %11000011
			
char_i:	.byte %11111100
			.byte %00110000
			.byte %00110000
			.byte %00110000
			.byte %11111100
			
char_j:	.byte %00000011
			.byte %00000011
			.byte %00000011
			.byte %11000011
			.byte %00111100
			
char_k:	.byte %11000011
			.byte %11001100
			.byte %11110000
			.byte %11001100
			.byte %11000011
			
char_l:	.byte %11000000
			.byte %11000000
			.byte %11000000
			.byte %11000000
			.byte %11111111
			
char_m:	.byte %11000011
			.byte %11111111
			.byte %11000011
			.byte %11000011
			.byte %11000011
			
char_n:	.byte %11000011
			.byte %11110011
			.byte %11001111
			.byte %11000011
			.byte %11000011
			
char_o:	.byte %00111100
			.byte %11000011
			.byte %11000011
			.byte %11000011
			.byte %00111100
			
char_p:	.byte %11111100
			.byte %11000011
			.byte %11111100
			.byte %11000000
			.byte %11000000
			
char_q:	.byte %00111100
			.byte %11000011
			.byte %00111111
			.byte %00000011
			.byte %00000011
			
char_r:	.byte %11111100
			.byte %11000011
			.byte %11111100
			.byte %11000011
			.byte %11000011
			
char_s:	.byte %00111111
			.byte %11000000
			.byte %00111100
			.byte %00000011
			.byte %11111100
			
char_t:	.byte %00110000
			.byte %11111100
			.byte %00110000
			.byte %00110000
			.byte %00001111
			
char_u:	.byte %11000011
			.byte %11000011
			.byte %11000011
			.byte %11000011
			.byte %00111100
			
char_v:	.byte %11000011
			.byte %11000011
			.byte %00110011
			.byte %00110011
			.byte %00001100
			
char_w:	.byte %11000011
			.byte %11000011
			.byte %11000011
			.byte %11111111
			.byte %11000011
			
char_x:	.byte %11001100
			.byte %11001100
			.byte %00110000
			.byte %11001100
			.byte %11001100
			
char_y:	.byte %11000011
			.byte %11000011
			.byte %00111111
			.byte %00000011
			.byte %00001111

char_z:	.byte %11111111
			.byte %11000000
			.byte %00111100
			.byte %00000011
			.byte %11111111
			
char_0:	.byte %00111100
			.byte %11000011
			.byte %11111111
			.byte %11000011
			.byte %00111100
			
char_1:	.byte %00111100
			.byte %00001100
			.byte %00001100
			.byte %00001100
			.byte %00001100
			
char_2:	.byte %11111100
			.byte %00000011
			.byte %00111100
			.byte %11000000
			.byte %11111111
			
char_3:	.byte %11111100
			.byte %00000011
			.byte %00111100
			.byte %00000011
			.byte %11111100
			
char_4:	.byte %00001100
			.byte %00111100
			.byte %11111111
			.byte %00001100
			.byte %00001100
			
char_5:	.byte %11111111
			.byte %11000000
			.byte %11111100
			.byte %00000011
			.byte %11111100
			
char_6:	.byte %00111111
			.byte %11000000
			.byte %11111100
			.byte %11000011
			.byte %00111100
			
char_7:	.byte %11111111
			.byte %00000011
			.byte %00001100
			.byte %00001100
			.byte %00001100
			
char_8:	.byte %00111100
			.byte %11000011
			.byte %00111100
			.byte %11000011
			.byte %00111100
			
char_9:	.byte %00111100
			.byte %11000011
			.byte %00111111
			.byte %00000011
			.byte %00000011
			
char_dot:.byte %11000000
			.byte %00000000
			.byte %00000000
			.byte %00000000
			.byte %00000000
			
char_com:.byte %00110000
			.byte %00110000
			.byte %11000000
			.byte %00000000
			.byte %00000000
			
char_col:.byte %00000000
			.byte %00110000
			.byte %00000000
			.byte %00110000
			.byte %00000000
			
char_sla:.byte %00000011
			.byte %00001100
			.byte %00110000
			.byte %11000000
			.byte %00000000
			
char_exc:.byte %00110000
			.byte %00110000
			.byte %00110000
			.byte %00000000
			.byte %00110000			
			
char_spc:.byte %00000000
			.byte %00000000
			.byte %00000000
			.byte %00000000
			.byte %00000000

char_ddd:.byte %00000000
			.byte %00111100
			.byte %00111100
			.byte %00111100
			.byte %00000000
			
.align 256
font_offsets:
			.repeat 51,I
				.byte I*5	
			.endrep
			.byte 0

.segment "SCROLLTEXT"
scrolltext:
			.byte "             we are back! the last weekend of march 2007, instinct will once again host a "
			.byte "party for you fellow data-people. last year was a big success and although the meeting "
			.byte "place was cosy and had the right data smell, we felt that a bigger place was needed. "
			.byte "hence, this year, we bring you a place big enough to host a big bunch of datapeople. "
			.byte "just like last year the enterance fee is 100 sek and will go directly to the nice guys we are renting the place from. "
			.byte "please sign up at "
			.byte "retrohackers§org/meeting           retrohackers§org/meeting                ",$ff
			
.segment "MUSIC"
music:
			.incbin "bit and brk phatter - warmer mix.bin"
